package com.dhj;


import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

import java.io.File;

/**
 * @author DaHuaJia
 * @Description 选择器组合用法
 * @Date 2021-11-13 13:58:34
 */
public class TestSelectorSup {


    /**
     * ele#id             标签+id
     * ele.class          标签+class
     * ele[attr]          元素+属性名
     * 任意组合             例如：span[abc].class
     * ancestor child     查找某个元素下的所有子元素，例如 .class li (查所有)
     * parent > child     查找某个元素下的直接子元素，例如 .class > li (查直接子元素)
     * parent > *         查找某个父元素下所有直接子元素
     */


    public static void main(String[] args) throws Exception {
        Document doc = Jsoup.parse(new File("D:\\FreeSpace\\2021\\crawler\\secondCrawler\\src\\main\\resources\\ningmeng.html"), "utf8");

        // ele#id
        Elements eleIds = doc.select("div#msoType");
        System.out.println(eleIds.first().toString());

        // ele.class
        Elements eleClass = doc.select("div.keyClass2");
        System.out.println(eleClass.first().toString());

        // ele[attr]
        Elements eleAttr = doc.select("div[key2]");
        System.out.println(eleAttr.first().attributes().toString());

        // 任意组合
        Elements eleFree = doc.select("div.keyClass[key2]");
        System.out.println(eleFree.first().toString());

        // ancestor child  所有子元素
        Elements eleChild = doc.select("#copyrightIndex img");
        System.out.println(eleChild.first().toString());

        // parent > *   直接子元素
        Elements eleChild2 = doc.select("#logoBox > div > #logoFixed");
        System.out.println(eleChild2.first().toString());

    }

}
